interface Foo {
  bar?: string;
  num?: number;
}

function getFoo(): Foo {
  return {
    bar: 'bar',
    num: Number.MAX_VALUE
  };
}
const foo: Foo = getFoo();
// 可能会产生混淆，误以为是不等于
export const isEqualsBar = foo.bar! === 'hello';
// 可能会产生混淆，误以为是不等于
const num = 2;
export const isEqualsNum = num + foo.num! === num;

a! == b;

a! === b;

a + b! == c;

(obj = new new OuterObj().InnerObj).Name! == c;

(a==b)! ==c;

a! = b;

(obj = new new OuterObj().InnerObj).Name! = c;

(a=b)! =c;